// 分类模块
import { getHeadCategory } from '@/api/category'

const category = {
  namespaced: true,
  // 定义数据
  state: () => ({
    categoryList: []
  }),
  // 定义修改数据数据方法
  mutations: {
    setCategoryList (state, list) {
      state.categoryList = list
    }
  },
  // 定义异步方法
  actions: {
    // 在某个合适的地方, 调用actions函数
    async getCategory (ctx) {
      // 发送请求, 获取数据
      // 调用mutations函数, 存入数据
      const { result } = await getHeadCategory()
      ctx.commit('setCategoryList', result)
    }
  },
  // 基于state的计算属性
  // 数据的二次处理
  getters: {
    formatList (state) {
      return state.categoryList.map((item) => {
        return {
          id: item.id,
          name: item.name,
          children: item.children.slice(0, 2),
          goods: item.goods
        }
      })
    }
  }
}

export default category
